package com.xf.day07_graphx

import org.apache.spark.graphx.VertexId
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
/**
 * 类型声明的问题 ( 以免  Scala编译器在推断 Array(...) 的类型时失败  )
 *  出现问题的原因:
 *        Array.apply 只支持基本类型（如 Int, String, Double 等单层类型），但 不支持复杂嵌套元组类型自动推断
 *
 *  问题的解决:
 *   1.返回值中的写明 类型  val join : RDD[( Long, (String, Int))]= sc.parallelize
 *   2.在数据类型中声明
 *      显式指定类型
 *      val join = sc.parallelize(
 *      Array[(Long, (String, String))](
 *      (1L, ("女生", "5")),
 *      (2L, ("女生", "5"))
 *      )
 *      )
 *
 *   3.使用 List 推荐数据
 *     // ✅ 推荐：直接使用 List（它是 Seq）
 *     val join = sc.parallelize(
 *     List[(Long, (String, Int))](
 *     (1L, ("女生", 5)),
 *     (2L, ("女生", 5))
 *     )
 *     )
 */
object TestArray {
  def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("testGraphx2").setMaster("local[*]")
    val sc = new SparkContext(conf)
    sc.setLogLevel("ERROR")

    // 创建 顶点RDD
//    val join : RDD[( Long, (String, Int))]= sc.parallelize(
//          Array(
//               (1L, ("女生", 5)),
//               (2L, ("女生", 5 ))
//          ))

    // ✅ 推荐：直接使用 List（它是 Seq）
    val join = sc.parallelize(
      List[(Long, (String, Int))](
        (1L, ("女生", 5)),
        (2L, ("女生", 5))
      )
    )

    join.collect().foreach( println )

  }

}
